package com.gupt.weekly.service;

import com.gupt.weekly.domain.Plan;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author linzizun
 * @version 1.0
 * @date 2021/03/12 16:03
 */
public interface PlanService {
    /**
     * 创建周报计划
     *
     * @param plan
     * @return
     */
    int insert(@Param("plan") Plan plan);

    /**
     * 查询计划
     *
     * @param id
     * @return
     */
    Plan selectById(String id);

    /**
     * 条件查询计划列表
     *
     * @param plan
     * @return
     */
    List<Plan> selectList(Plan plan);

    /**
     * 条件查询未开始计划列表
     *
     * @param plan
     * @return
     */
    List<Plan> selectNotStartList(Plan plan);

    /**
     * 条件查询未结束计划列表
     *
     * @param plan
     * @return
     */
    List<Plan> selectNotClosedList(Plan plan);

    /**
     * 条件查询进行中的计划列表
     *
     * @param plan
     * @return
     */
    List<Plan> selectOngoingList(Plan plan);

    /**
     * 条件查询已结束计划列表
     *
     * @param plan
     * @return
     */
    List<Plan> selectHasClosedList(Plan plan);

    /**
     * 根据id更改计划
     *
     * @param plan
     * @return
     */
    int updateById(Plan plan);
}
